package br.com.divulgaqui.managedbean;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import br.com.divulgaqui.client.VendaServiceBeanLocal;
import br.com.divulgaqui.entity.ItemVenda;
import br.com.divulgaqui.entity.PacoteAnuncio;
import br.com.divulgaqui.entity.Pessoa;
import br.com.divulgaqui.entity.Venda;

@ManagedBean
@SessionScoped
public class VendaManagedBean extends BaseBean{
	
	private static final long serialVersionUID = 1L;
	
	private List<ItemVenda> inItensVenda;
	private List<Venda> vendas;
	private PacoteAnuncio pacoteAnuncioSelecionado;	
	@ManagedProperty(name="loginManagedBean",value="#{loginManagedBean}")
	private LoginManagedBean loginManagedBean;	
	@EJB
	private VendaServiceBeanLocal vendaServiceBeanLocal;
	
	
	public VendaManagedBean(){		
	}
	
	@PostConstruct
	public void init(){
		vendas = new ArrayList<Venda>();
		inItensVenda = new ArrayList<ItemVenda>();
		pacoteAnuncioSelecionado = new PacoteAnuncio();	
	}
	
	/**
	 * 
	 * @throws IOException
	 */
	public void carregarPacotesCliente() throws IOException{
		FacesContext context = FacesContext.getCurrentInstance();
		if(loginManagedBean == null || loginManagedBean.getPessoa() == null){			
			context.getExternalContext().redirect("/divulgaqui/login");
		}
		Pessoa pessoa = loginManagedBean.getPessoa();
		vendas = vendaServiceBeanLocal.vendasCliente(pessoa);
		popularItens();
		context.getExternalContext().redirect("/divulgaqui/cliente/area/pacotes");
	}
	
	/**
	 * 
	 */
	private void popularItens(){
		inItensVenda.clear();
		for(Venda v : vendas){
			for(ItemVenda iv : v.getInItensVenda()){
				inItensVenda.add(iv);
			}
		}
	}
	
	
	//====================== Get e Set ====================//

	public PacoteAnuncio getPacoteAnuncioSelecionado() {
		return pacoteAnuncioSelecionado;
	}

	public void setPacoteAnuncioSelecionado(PacoteAnuncio paconteAnuncioSelecionado) {
		this.pacoteAnuncioSelecionado = paconteAnuncioSelecionado;
	}

	public LoginManagedBean getLoginManagedBean() {
		return loginManagedBean;
	}

	public void setLoginManagedBean(LoginManagedBean loginManagedBean) {
		this.loginManagedBean = loginManagedBean;
	}

	public List<ItemVenda> getInItensVenda() {
		return inItensVenda;
	}

	public void setInItensVenda(List<ItemVenda> inItensVenda) {
		this.inItensVenda = inItensVenda;
	}

	public List<Venda> getVendas() {
		return vendas;
	}

	public void setVendas(List<Venda> vendas) {
		this.vendas = vendas;
	}
}
